﻿
using System;
using System.Runtime.Serialization;
using V82;
using V82.Перечисления;//Ссылка;
namespace V82.Перечисления//Ссылка
{
	///<summary>
	///Способы признания расходов
	///</summary>
	[DataContract]
	public enum СпособыПризнанияРасходов
	{
		[NonSerialized]
		ПустаяСсылка = - 1,
	///<summary>
	///Расходы признаются равномерно пропорционально количеству месяцев
	///</summary>
		[EnumMember(Value = "{\"Ссылка\":\"1574b1b9-eb2f-4789-a7c7-9750b4b0b49f\", \"Представление\":\"ПоМесяцам\"}")]
		ПоМесяцам = 0,//По месяцам
	///<summary>
	///Расходы признаются равномерно пропорционально количеству календарных дней
	///</summary>
		[EnumMember(Value = "{\"Ссылка\":\"9a630dc5-3c74-4cad-8efd-d951e0cecbe7\", \"Представление\":\"ПоКалендарнымДням\"}")]
		ПоКалендарнымДням = 1,//По календарным дням
	///<summary>
	///Расходы признаются в особом порядке
	///</summary>
		[EnumMember(Value = "{\"Ссылка\":\"d4e5dc43-a12f-4fed-907c-341026af66e9\", \"Представление\":\"ВОсобомПорядке\"}")]
		ВОсобомПорядке = 2,//В особом порядке
	}
	public static partial class СпособыПризнанияРасходов_Значения//:ПеречислениеСсылка
	{
		///<summary>
		///Расходы признаются равномерно пропорционально количеству месяцев
		///</summary>
		public static readonly Guid ПоМесяцам = new Guid("5097c7a7-b0b4-9fb4-4789-eb2f1574b1b9");//По месяцам
		///<summary>
		///Расходы признаются равномерно пропорционально количеству календарных дней
		///</summary>
		public static readonly Guid ПоКалендарнымДням = new Guid("51d9fd8e-cee0-e7cb-4cad-3c749a630dc5");//По календарным дням
		///<summary>
		///Расходы признаются в особом порядке
		///</summary>
		public static readonly Guid ВОсобомПорядке = new Guid("10347c90-af26-e966-4fed-a12fd4e5dc43");//В особом порядке
		public static СпособыПризнанияРасходов Получить(this СпособыПризнанияРасходов Значение, byte[] Ссылка)
		{
			return Получить(Значение, new Guid(Ссылка));
		}
		public static СпособыПризнанияРасходов Получить(this СпособыПризнанияРасходов Значение, Guid Ссылка)
		{
			if(Ссылка == ПоМесяцам)
			{
				return СпособыПризнанияРасходов.ПоМесяцам;
			}
			else if(Ссылка == ПоКалендарнымДням)
			{
				return СпособыПризнанияРасходов.ПоКалендарнымДням;
			}
			else if(Ссылка == ВОсобомПорядке)
			{
				return СпособыПризнанияРасходов.ВОсобомПорядке;
			}
			return СпособыПризнанияРасходов.ПустаяСсылка;
		}
		public static byte[] Ключ(this СпособыПризнанияРасходов Значение)
		{
			return Ссылка(Значение).ToByteArray();
		}
		public static Guid Ссылка(this СпособыПризнанияРасходов Значение)
		{
			switch (Значение)
			{
				case СпособыПризнанияРасходов.ПоМесяцам: return ПоМесяцам;
				case СпособыПризнанияРасходов.ПоКалендарнымДням: return ПоКалендарнымДням;
				case СпособыПризнанияРасходов.ВОсобомПорядке: return ВОсобомПорядке;
			}
			return Guid.Empty;
		}
	}
}